package design_pattern.ThreadLocal.Execution;

/**
 * @Author: 蔡翔
 * @Date: 2019/11/11 15:07
 * @Version 1.0
 */
public class QueryFromHttpAction {
    public void execute(){
        //这里并没有 set 啥东西，而是用了 一个线程存保险箱（存放变量的）ThreadLocal,这个“线程保险箱”是多个线程共用的。
        //这里往线程保险箱 里存的数据（就是一个对象）
        Context context = ActionContext.getActionContext().getContext();
        String name = context.getName();
        String cardId = getCardId(name);
        context.setCardId(cardId);
    }
    private String getCardId(String name){
        try {
            Thread.sleep(1000L);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        return "2231123111 "+Thread.currentThread().getId();
    }
}
